﻿CREATE PROCEDURE [dbo].[usp_insert_AlertSubscription]
(
			@AlertSubscriptionID uniqueidentifier
           ,@AlertID uniqueidentifier
		   ,@Active bit
           ,@Subscriber varchar(255)
           ,@IsGroup bit
		   ,@CustomEmail varchar(255)
		   ,@UseStartAndEndTime bit
           ,@StartUTCHour tinyint
           ,@StartUTCMinute tinyint
           ,@EndUTCHour tinyint
           ,@EndUTCMinute tinyint
           ,@BlackOutStartDate datetime
           ,@BlackOutEndDate datetime
           ,@LastFired datetime
           ,@IntervalMinutes smallint
           ,@InsertedBy varchar(50)
			,@Debug					   bit			   = 0
)
AS

/****************************************************************************
Name: usp_insert_AlertSubscription.sql
Description: 
*****************************************************************************/
SET NOCOUNT ON;

-- Bootstrap
DECLARE @DebugPrefix       varchar(10);
DECLARE @ErrorCode         int;

SET @ErrorCode          = 0;
SET @DebugPrefix        = '>>> DEBUG: ';

-- Print parameters
IF (@Debug > 0)
BEGIN
	PRINT @DebugPrefix + '@AlertSubscriptionID = '	+ CONVERT(varchar, @AlertSubscriptionID);
	PRINT @DebugPrefix + '@AlertID = '				+ CONVERT(varchar, @AlertID);
	PRINT @DebugPrefix + '@Subscriber = '			+ @Subscriber;
END;



INSERT INTO [dbo].[AlertSubscription]
           ([AlertSubscriptionID]
           ,[AlertID]
		   ,[Active]
           ,[Subscriber]
           ,[IsGroup]
		   ,[CustomEmail]
		   ,[UseStartAndEndTime]
           ,[StartUTCHour]
           ,[StartUTCMinute]
           ,[EndUTCHour]
           ,[EndUTCMinute]
           ,[BlackOutStartDate]
           ,[BlackOutEndDate]
           ,[LastFired]
           ,[IntervalMinutes]
           ,[InsertedDate]
           ,[InsertedBy])
     VALUES
           (@AlertSubscriptionID
           ,@AlertID
		   ,@Active
           ,@Subscriber
           ,@IsGroup
		   ,@CustomEmail
		   ,@UseStartAndEndTime
           ,@StartUTCHour
           ,@StartUTCMinute
           ,@EndUTCHour
           ,@EndUTCMinute
           ,@BlackOutStartDate
           ,@BlackOutEndDate
           ,@LastFired
           ,@IntervalMinutes
           ,GetUTCDate()
           ,@InsertedBy)

-- CHECK FOR ERROR
SET @ErrorCode = @@Error;

IF (@ErrorCode <> 0) GOTO ERROR_HANDLER;

RETURN 0;

-- Handles errors.
ERROR_HANDLER:
IF (@ErrorCode <> 0)
BEGIN
    IF (@Debug > 0) 
		BEGIN
			PRINT @DebugPrefix + 'Error Code = ' + CAST(@ErrorCode AS varchar(10)) + ' occurred.';
			RETURN @ErrorCode
		END

    -- Don't return any evidence of what specific error occurred, i.e. 
    -- we want to ward off potential hackers.
    RETURN 1;
END;

SET NOCOUNT OFF;
